1
Diseñando para flexibilidad: La interfaz de tabla
AI020Lesson 4
00:00

La base de un sistema flexible radica en definir un contrato interno rígido contrato o interfaz que los objetos deben seguir. En este contexto, definimos una interfaz de tabla donde cada objeto celda garantiza la existencia de tres métodos específicos: minAncho(), , minAlto(), y dibujar(ancho, alto).

1. El contrato de interfaz

Al estandarizar estos métodos, la lógica de diseño puede calcular las dimensiones globales de filas y columnas sin conocer los tipos de datos internos de las celdas individuales. Este es un ejemplo clásico de Polimorfismo basado en interfaces.

2. Implementación de TextCell

El TextCell el constructor prepara la entrada cruda dividiendo cadenas en arreglos por línea. Esto desplaza la complejidad desde la fase de renderizado hasta la fase de instanciación.

this.text = text.split("\n");

3. Dibujo determinista

El dibujar(ancho, alto) método garantiza que cada salida de celda esté perfectamente rellenada usando una función auxiliar repetir() ayudante. Esto mantiene el alineamiento vertical y horizontal independientemente de la longitud del contenido.

nombreKilimanjaroaltura5895Las columnas se alinean mediante el cálculo de minWidth()

$$\text{Relleno} = \text{Ancho} - \text{largo de línea}$$

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>